﻿
using System;
using System.Runtime.Serialization;
using V82;
using V82.Перечисления;//Ссылка;
namespace V82.Перечисления//Ссылка
{
	[DataContract]
	public enum СпособыОпределенияЗначенияТочкиЗаказа
	{
		[NonSerialized]
		ПустаяСсылка = - 1,
		[EnumMember(Value = "{\"Ссылка\":\"6a316369-2848-4d18-a4db-f1ff1487cc51\", \"Представление\":\"Фиксированная\"}")]
		Фиксированная = 0,
		[EnumMember(Value = "{\"Ссылка\":\"3cd30acb-2ebb-4250-ba49-3a4c35ba2df7\", \"Представление\":\"СреднийРазмерПартии\"}")]
		СреднийРазмерПартии = 1,//Средний размер партии
		[EnumMember(Value = "{\"Ссылка\":\"feec5fe7-cf60-4327-b738-cbf73049c023\", \"Представление\":\"ОптимальныйРазмерЗаказа\"}")]
		ОптимальныйРазмерЗаказа = 2,//Оптимальный размер заказа
		[EnumMember(Value = "{\"Ссылка\":\"d5feccf5-479c-4211-b824-e70f42628bfa\", \"Представление\":\"НеКонтролировать\"}")]
		НеКонтролировать = 3,//Не контролировать
	}
	public static partial class СпособыОпределенияЗначенияТочкиЗаказа_Значения//:ПеречислениеСсылка
	{
		public static readonly Guid Фиксированная = new Guid("fff1dba4-8714-51cc-4d18-28486a316369");
		public static readonly Guid СреднийРазмерПартии = new Guid("4c3a49ba-ba35-f72d-4250-2ebb3cd30acb");//Средний размер партии
		public static readonly Guid ОптимальныйРазмерЗаказа = new Guid("f7cb38b7-4930-23c0-4327-cf60feec5fe7");//Оптимальный размер заказа
		public static readonly Guid НеКонтролировать = new Guid("0fe724b8-6242-fa8b-4211-479cd5feccf5");//Не контролировать
		public static СпособыОпределенияЗначенияТочкиЗаказа Получить(this СпособыОпределенияЗначенияТочкиЗаказа Значение, byte[] Ссылка)
		{
			return Получить(Значение, new Guid(Ссылка));
		}
		public static СпособыОпределенияЗначенияТочкиЗаказа Получить(this СпособыОпределенияЗначенияТочкиЗаказа Значение, Guid Ссылка)
		{
			if(Ссылка == Фиксированная)
			{
				return СпособыОпределенияЗначенияТочкиЗаказа.Фиксированная;
			}
			else if(Ссылка == СреднийРазмерПартии)
			{
				return СпособыОпределенияЗначенияТочкиЗаказа.СреднийРазмерПартии;
			}
			else if(Ссылка == ОптимальныйРазмерЗаказа)
			{
				return СпособыОпределенияЗначенияТочкиЗаказа.ОптимальныйРазмерЗаказа;
			}
			else if(Ссылка == НеКонтролировать)
			{
				return СпособыОпределенияЗначенияТочкиЗаказа.НеКонтролировать;
			}
			return СпособыОпределенияЗначенияТочкиЗаказа.ПустаяСсылка;
		}
		public static byte[] Ключ(this СпособыОпределенияЗначенияТочкиЗаказа Значение)
		{
			return Ссылка(Значение).ToByteArray();
		}
		public static Guid Ссылка(this СпособыОпределенияЗначенияТочкиЗаказа Значение)
		{
			switch (Значение)
			{
				case СпособыОпределенияЗначенияТочкиЗаказа.Фиксированная: return Фиксированная;
				case СпособыОпределенияЗначенияТочкиЗаказа.СреднийРазмерПартии: return СреднийРазмерПартии;
				case СпособыОпределенияЗначенияТочкиЗаказа.ОптимальныйРазмерЗаказа: return ОптимальныйРазмерЗаказа;
				case СпособыОпределенияЗначенияТочкиЗаказа.НеКонтролировать: return НеКонтролировать;
			}
			return Guid.Empty;
		}
	}
}